#include "FileReader.h"


using namespace std;
using namespace OOPUtils;



FileReader::FileReader (const OOPString & filename) : _fin (filename.c_str ())
{

}

FileReader::~FileReader ()
{
}

void OOPUtils::FileReader::resetPos ()
{
	_fin.seekg (0, ios::beg);
}

OOPPtr< ByteArray > OOPUtils::FileReader::read (size_t count)
{
	OOPPtr< ByteArray > pByteArray = new ByteArray (count);
	_fin.read ((char *)&(*pByteArray)[0], count);
	size_t realCount = _fin.gcount ();
	pByteArray->resize (realCount);
	return pByteArray;
}

void OOPUtils::FileReader::skip (size_t count)
{
	_fin.ignore (count);
}

size_t OOPUtils::FileReader::getPos ()
{
	return _fin.tellg ();
}

bool OOPUtils::FileReader::isEof ()
{
	return _fin.eof ();
}

void OOPUtils::FileReader::open (const OOPString & filename)
{
	_fin.open (filename);
}

void OOPUtils::FileReader::close ()
{
	_fin.close ();
}

void OOPUtils::FileReader::setPos (size_t pos)
{
	_fin.seekg (pos, ios::beg);
}
